<?php
//---------------------------------------------------------------------------------------------------------------------------
// Object
//---------------------------------------------------------------------------------------------------------------------------
    abstract class objObject {
            protected $_error_no = 0;            
            protected $_error_str = array();
            
        public function Error($no=false) {
            if( false!==$no && is_int($no) )   $this->_error_no=$no; 
            return "class ".$this->classname()." (error No: $this->_error_no) ".$this->ErrorStr();
        } //ErrorNo
        
        public function ErrorNo() {
            return $this->_error_no;
        } //ErrorNo
        
        public function ErrorStr() {
            return $this->_error_str[$this->_error_no];    
        } //ErrorStr
        
        abstract public function classname();

    } // class objObject
    
//---------------------------------------------------------------------------------------------------------------------------
// Interfaces
//---------------------------------------------------------------------------------------------------------------------------
        interface iVisible {
           function Render();           
        }//interface iVisible
        
        interface iErrorHandler {
           function Error($no=false);
           function ErrorNo();
           function ErrorStr();
        }//interface iErrorHandler
        //-------------------------------------------------------------------------------------------------------------------
        interface iDebug {
           function dump();
        }//interface iDebug
//---------------------------------------------------------------------------------------------------------------------------
?>